home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1993-03-31 | 22.6 KB | 859 lines |
- ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- '
- ' AMOSPro Interpretor Configuration V 1.1
- '
- '----------------------------------------------------------------------
- '
- ' By Fran�ois Lionet
- '
- ' (c) 1992 Europress Software Ltd.
- '
- ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- '
- Set Buffer 20
- ' If called from the editor's menu
- Set Accessory
- ' Will only have effect it the program is runned alone...
- Close Editor
- Global DB$
- Global YDI,QUIT
- Global BNAME$
- Global STMX,NST
- Global MX,MY,MK,MZ,MS
- Global BKPOS,BKCHANGE,ABK,ADAT,BK,TBNK,BKCHUNKS
- Global ESX,ESY,D_NAME$
- ' Maximum number of strings
- STMX=64
- Dim ST$(STMX)
- Global ST$(),STAD
- Dim FLAGS(16)
- Global FLAGS()
- ' Default work bank
- BK=10
- ' Location of the default config
- D_NAME$="S:AMOSPro_Interpreter_Config"
- ' Initialisations
- Resource Bank 16
- INIT_SCREEN
- BANK_NEW
- ' Call main loop, and exit!
- MN_MAIN
- Procedure MN_MAIN
-
- Do
-
- If BNAME$=""
- Vdialog$(1,0)=Resource$(2)+Resource$(53)
- Else
- If BNAME$=D_NAME$
- Vdialog$(1,0)=Resource$(2)+Resource$(54)
- Else
- Vdialog$(1,0)=Resource$(2)+Right$(BNAME$,32)
- End If
- End If
-
- D=Dialog Run(1,1)
-
- Repeat
-
- Multi Wait
- D=Dialog(1)
- On D Proc MN_LEAVE,MN_DLOAD,MN_NLOAD,MN_SAVE,MN_SAVEAS,MN_EXT,MN_SETUP1,MN_SETUP2,MN_FILES
-
- Until QUIT
- QUIT=0
-
- Loop
- End Proc
- Procedure MN_LEAVE
- D=2
- If BKCHANGE : D=Dialog Box(DB$,1,Resource$(11)) : End If
- If D=2
- MN_QUIT
- End If
-
- End Proc
- Procedure MN_DLOAD
- MN_LOADIT[D_NAME$]
- End Proc
- Procedure MN_NLOAD
- MN_LOADIT[""]
- End Proc
- Procedure MN_LOADIT[F$]
-
- Dialog Freeze
-
- D=2 : If BKCHANGE : D=Dialog Box(DB$,1,Resource$(11)) : End If
-
- If D=2
-
- BANK_NEW : QUIT=-1
-
- If F$=""
- F$=Fsel$("**","",Resource$(14))
- If F$="" : Goto _END : End If
- End If
-
- BNAME$=""
- On Error Goto _ERR
- Open In 1,F$ : L=Lof(1) : Close
- Reserve As Work BK,L+8*1024
- Bload F$,Start(BK) : ABK=Start(BK)
-
- If Peek$(ABK,4)="PId1"
-
- STAD=ABK+Leek(ABK+4)+8
- If Peek$(STAD,4)="PIt1"
- ADAT=ABK+8 : BNAME$=F$
-
- ' Strings
- A=STAD+8
- For ST=1 To STMX
- L=Peek(A+1) : Exit If L=$FF
- ST$(ST)=Peek$(A+2,L)
- Add A,L+2
- Next
-
- End If
- End If
-
- If BNAME$="" : D=Dialog Box(DB$,2,Resource$(15)) : End If
-
- End If
- Goto _END
-
- _ERR: Resume _DIA
- _DIA: Bell : D=Dialog Box(DB$,2,Resource$(55)) : BNAME$="" : Goto _END
- _END: Dialog Unfreeze
-
- End Proc
- Procedure MN_SAVE
-
- MN_SAVEIT[BNAME$]
-
- End Proc
- Procedure MN_SAVEAS
-
- MN_SAVEIT[""]
-
- End Proc
- Procedure MN_SAVEIT[F$]
- If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If
- Dialog Freeze
- If F$=""
- F$=Fsel$("**","",Resource$(14))
- If F$="" : Goto _END : End If
- End If
-
- ' Poke the strings back into the bank
- AP=STAD+8
- For S=1 To STMX
- Poke AP,0
- Poke AP+1,Len(ST$(S))
- Poke$ AP+2,ST$(S)
- Add AP,2+Len(ST$(S))
- Next
- Poke AP,0 : Poke AP+1,$FF : Add AP,2
- Loke STAD+4,AP-STAD-8
- AP=AP+AP mod 2
-
- ' Save the data zone to disc
- On Error Goto _ERR
- Bsave F$,ABK To AP
- BKCHANGE=0 : BNAME$=F$
- D=Dialog Box(DB$,2,Resource$(52))
- Goto _END
-
- _ERR: Resume _DIA
- _DIA: D=Dialog Box(DB$,2,Resource$(57)) : BNAME$="" : Goto _END
- _END: Dialog Unfreeze
- End Proc
- Procedure MN_EXT
-
- If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If
- Dim TMP$(26)
- For S=16 To 42
- TMP$(N)=ST$(S) : Inc N
- Next
- POS=0
- Do
-
- Vdialog(1,2)=POS
- Vdialog(1,3)=Array(TMP$(0))
- D=Dialog Run(1,2)
-
- Repeat
-
- Multi Wait
- D=Dialog(1)
- POS=Rdialog(1,2)
- Exit If D=1,2
- If D=3
- N=Rdialog(1,3)
- MN_EDIT[Resource$(18)+Str$(N+1),TMP$(N)]
- TMP$(N)=Param$
- QUIT=-1 : Inc BKCHANGE
- End If
-
- Until QUIT
- QUIT=0
-
- Loop
-
- N=0
- For S=16 To 42
- ST$(S)=TMP$(N) : Inc N
- Next
-
- QUIT=-1
-
- End Proc
- Procedure MN_FILES
-
- If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If
- Dim TMP$(15)
- For S=1 To 15
- TMP$(N)=ST$(S) : Inc N
- Next
- POS=0
- Do
-
- Vdialog(1,2)=POS
- Vdialog(1,3)=Array(TMP$(0))
- D=Dialog Run(1,4)
-
- Repeat
-
- Multi Wait
- D=Dialog(1)
- POS=Rdialog(1,2)
- Exit If D=1,2
- If D=3
- N=Rdialog(1,3)
- If N=0 : T=23 Else T=24 : End If
- MN_EDIT[Resource$(T),TMP$(N)]
- TMP$(N)=Param$
- QUIT=-1 : Inc BKCHANGE
- End If
-
- Until QUIT
- QUIT=0
-
- Loop
-
- N=0
- For S=1 To 15
- ST$(S)=TMP$(N) : Inc N
- Next
-
- QUIT=-1
-
- End Proc
- Procedure MN_EDIT[T$,S$]
- Vdialog$(1,1)=S$
- Vdialog$(1,2)=T$
- D=Dialog Run(1,3)
- If D=2 : S$=Rdialog$(1,3) : End If
-
- End Proc[S$]
- Procedure MN_SETUP1
-
- If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If
- Do
-
- ' Grab the flags
- For F=0 To 8
- If Peek(ADAT+34+F)
- Vdialog(1,2+F)=1
- Else
- Vdialog(1,2+F)=0
- End If
- Next
- D=Dialog Run(1,5)
-
- Repeat
-
- Multi Wait
- D=Dialog(1)
- Exit If D=1,2
- If D=11 : MN_SCREEN[Resource$(43),ADAT+48,480,704,80,288,2,1] : End If
- If D=12 : MN_SCREEN[Resource$(44),ADAT+58,320,704,80,288,2,1] : End If
- If D=13 : MN_DEFAULT : End If
-
- Until QUIT
- QUIT=0
-
- Loop
-
- For F=0 To 8
- Poke ADAT+34+F,Vdialog(1,2+F)
- Next
-
- QUIT=-1 : Inc BKCHANGE
-
- End Proc
- Procedure MN_SETUP2
-
- If BNAME$="" : D=Dialog Box(DB$,2,Resource$(56)) : Pop Proc : End If
- Do
-
- ' Number of bobs
- SETVDIA[16,Deek(ADAT+8),8,256,1]
- ' Number of sprites
- SETVDIA[20,Leek(ADAT+16),16,312,2]
- ' Copper List
- SETVDIA[24,Leek(ADAT+12)/1024,2,32,1]
- ' Variable name buffer
- SETVDIA[28,Leek(ADAT+20)/1024,1,32,1]
- ' Default buffer
- SETVDIA[32,Leek(ADAT+26)/1024,1,2048,1]
- ' Ports
- Vdialog$(1,2)=ST$(43) : Vdialog$(1,3)=ST$(44)
- ' Amiga-A
- If Leek(ADAT+148)
- A$=Upper$(Chr$(Peek(ADAT+151))) : S=Peek(ADAT+149)
- Else
- A$="A" : S=$40
- End If
- Vdialog$(1,4)=A$
- For A=0 To 7
- B=0 : If Btst(A,S) : B=1 : End If
- Vdialog(1,A+5)=B
- Next
-
- D=Dialog Run(1,6)
-
- Repeat
-
- Multi Wait
- D=Dialog(1)
- Exit If D=1,2
-
- Until QUIT
- QUIT=0
-
- Loop
-
- ' Number of bobs
- Doke ADAT+8,Vdialog(1,16)
- ' Number of sprites
- Loke ADAT+16,Vdialog(1,20)
- ' Copper List
- Loke ADAT+12,Vdialog(1,24)*1024
- ' Variable name buffer
- Loke ADAT+20,Vdialog(1,28)*1024
- ' Default buffer
- Loke ADAT+26,Vdialog(1,32)*1024
- ' Ports
- ST$(43)=Rdialog$(1,2) : ST$(44)=Rdialog$(1,3)
- ' Amiga-A
- A$=Upper$(Left$(Rdialog$(1,4),1))
- If A$>="A" and A$<="Z"
- Poke ADAT+151,Asc(A$) : Poke ADAT+150,Asc(Lower$(A$))
- S=0 : For A=0 To 7 : If Rdialog(1,A+5) : Bset A,S : End If : Next
- Poke ADAT+149,S
- End If
-
- QUIT=-1 : Inc BKCHANGE
-
- End Proc
-
- Procedure MN_DEFAULT
-
- Dim S(16),SS(16),C(4)
- For C=0 To 15 : S(C)=Deek(ADAT+C*2+80) : SS(C)=S(C) : Next
- NPLAN=Deek(ADAT+72)
- C(1)=2 : C(2)=4 : C(3)=8 : C(4)=16 : CUR=0
- HIR=1 : If Deek(ADAT+76) and $8000 : Inc HIR : End If
- LAC=1 : If Deek(ADAT+76) and $4 : Inc LAC : End If
- Reserve As Work 100,16 : SCR=Start(100)
- Loke SCR,Leek(ADAT+68)
- X=Deek(ADAT+144) : If X=0 : X=128 : End If
- Y=Deek(ADAT+146) : If Y=0 : Y=50 : End If
- Doke SCR+4,X : Doke SCR+6,Y : Doke SCR+8,0
-
- Do
-
- SETVDIA[16,NPLAN,1,5,1]
- Vdialog(1,3)=HIR-1
- Vdialog(1,4)=LAC-1
-
- D=Dialog Run(1,8)
-
- Do
-
- NCOL=C(NPLAN)
- If CUR>NCOL : CUR=NCOL : End If
- C=S(CUR) : R=(C and $F00)/$100 : G=(C and $F0)/$10 : B=C and $F
- Dialog Update 1,6,CUR,1,NCOL
- Dialog Update 1,7,R
- Dialog Update 1,8,G
- Dialog Update 1,9,B
-
- Repeat
-
- Multi Wait
- D=Dialog(1)
-
- Exit If D=1,3
-
- If D=3 : HIR=Vdialog(1,3)+1 : End If
- If D=4 : LAC=Vdialog(1,4)+1 : End If
- If D=7 : R=Rdialog(1,7) : Inc F : End If
- If D=8 : G=Rdialog(1,8) : Inc F : End If
- If D=9 : B=Rdialog(1,9) : Inc F : End If
- If D=10 : C=SS(CUR) : S(CUR)=C : Exit : End If
- If F : Gosub _SET : End If
- If D=6 : Gosub _SET : CUR=Rdialog(1,6) : Exit : End If
- If D=16 : NPLAN=Vdialog(1,16) : Exit : End If
- If D=5
- If HIR=1 : If Deek(SCR)>384 : Doke SCR,Deek(SCR)/2 : End If : End If
- If LAC=1 : If Deek(SCR+2)>288 : Doke SCR+2,Deek(SCR+2)/2 : End If : End If
- MN_SCREEN[Resource$(67),SCR,240,384*HIR,32,288*LAC,HIR,LAC]
- Exit 2
- End If
-
- Until QUIT
- QUIT=0
-
- Loop
-
- Loop
-
- For C=0 To 15 : Doke ADAT+C*2+80,S(C) : Next : Doke ADAT+78,S(0)
- Doke ADAT+72,NPLAN : Doke ADAT+74,NCOL
- R=0
- If HIR=2 : R=$8000 : End If
- If LAC=2 : R=R or $4 : End If
- Loke ADAT+68,Leek(SCR)
- Doke ADAT+144,Deek(SCR+4)
- Doke ADAT+146,Deek(SCR+6)
- Doke ADAT+76,R
- Inc BKCHANGE
-
- Erase 100 : QUIT=True : Pop Proc
-
- _SET: C=R*$100+G*$10+B : S(CUR)=C : Return
-
- End Proc
- Procedure MN_SCREEN[T$,AD,XMIN,XMAX,YMIN,YMAX,RESX,RESY]
-
- X=Free
- A=Lowres : If RESX=2 : A=Hires : End If
- If RESY=2 : Add A,Laced : End If
- Screen Open 1,XMAX,YMAX,2,A : Screen Hide 1
-
- Screen Display 0,,,,14
- Curs Off : Cls 0 : Palette 0,$FF0
- For X=0 To XMAX Step 16 : Draw X,0 To X,YMAX : Next
- For Y=0 To YMAX Step 16 : Draw 0,Y To XMAX,Y : Next
- Wind Open 1,0,8,20,4,1 : Curs Off : Scroll Off
- SX=Deek(AD) : SY=Deek(AD+2)
- WX=Deek(AD+4) : WY=Deek(AD+6)
- Screen Display 1,WX,WY,SX/RESX,SY
- Screen To Front 0
-
- Vdialog$(1,0)=T$
- SETVDIA[16,Deek(AD+8),2,312,1]
- D=Dialog Run(1,7)
- Screen Show 1
- Repeat
-
- Multi Wait
- D=Dialog(1) : Exit If D=1
- If D=2 : M=1 : Clw : Gosub _DISP : End If
- If D=3 : M=2 : Clw : Gosub _DISP : End If
- If D=0
- If Mouse Key=1
- Dialog Freeze
- While Mouse Key
- If M=1
- WX=X Mouse : WY=Y Mouse
- End If
- If M=2
- SX=Max(Min(X Screen(1,X Mouse),XMAX),XMIN)
- SY=Max(Min(Y Screen(1,Y Mouse),YMAX),YMIN)
- If RESX=1
- SX=SX and $FFFFFFF0
- Else
- SX=SX and $FFFFFFE0
- End If
- SY=SY and $FFFFFFF8
- End If
- Screen Display 1,WX,WY,SX/RESX,SY
- Gosub _DISP
- Wait Vbl
- Wend
- Dialog Unfreeze
- End If
- End If
- Until QUIT
- Screen Close 1
- Screen Display 0,,50,,ESY
- Doke AD,SX : Doke AD+2,SY
- Doke AD+4,WX : Doke AD+6,WY
- Doke AD+8,Vdialog(1,16)
- QUIT=-1
- Pop Proc
-
- _DISP:
- Home
- If M=1
- Print Resource$(48);WX;" "
- Print Resource$(49);WY;" "
- Else
- Print Resource$(50);SX;" "
- Print Resource$(51);SY;" "
- End If
- Return
- End Proc
- Procedure BANK_NEW
-
- ' Erase the current config from memory
- BNAME$=""
- For S=0 To STMX : ST$(S)="" : Next
- BKCHANGE=0
- End Proc
- Procedure SETVDIA[V,A,B,C,D]
- Vdialog(1,V)=A
- Vdialog(1,V+1)=B
- Vdialog(1,V+2)=C
- Vdialog(1,V+3)=D
- End Proc
- Procedure INIT_SCREEN
-
- Restore DBL
- Repeat
- Read A$ : DB$=DB$+A$
- Until A$=""
-
- ESX=640 : ESY=200 : YDI=45
- Trap Screen Open 0,ESX,ESY,8,Hires
- If Errtrap : OOMEM : End If
- Screen Display 0,,YDI,,
- Curs Off : Flash Off : Cls 0
-
- GRB_EDITOR_PALETTE
- Paper 0 : Pen 1
- Limit Mouse 96,35 To 530,312
-
- On Error Goto ERR
- Trap Dialog Open 1,DB$,48,1024*4
- If Errtrap : OOMEM : End If
- Pop Proc
-
- ERR: Print Mid$(DB$,Edialog,80) : Wait Key : End
- ' Definition of quick-run dialog boxes
- DBL:
- Data "SIze 1VA TW 160+,64;"
- Data "BAse SWidth SX -2/,SHeight SY- 2/;"
- Data "SAve 1;"
- Data "RBox 0,0,SX,SY,0;"
- Data "CTxt 16,8,SX 16-,32,1,1VA;"
- Data "IF 0VA 1=;"
- Data "["
- Data " BJ 1,16,SY 24-,64,16,12ME; KY 27,0;"
- Data " BJ 2,SX 80-,SY 24-,64,16,13ME; KY 13,0;"
- Data "]"
- Data "IF 0VA 2=;"
- Data "["
- Data " BJ 1,SX 80-,SY 24-,64,16,13ME; KY $FF,0;"
- Data "]"
- Data "RUn 0,3;"
- Data "EXit;"
-
- ' Definition of the first menu page
- Data "LA 1;"
- Data "BAse 0,0; SIze SW,SH;"
- Data "BT 1,0,0,48,16,1ME;"
- Data "BI 0,XB,0,SX XB-,16,0VA;"
- Data "RB 0,16,SX,SY,0;"
- Data "BT 2,32,28,SX64-,16,3ME;"
- Data "BT 3,XA,YB,XB XA-,YB YA-,4ME;"
- Data "BT 4,XA,YB,XB XA-2/,YB YA-,5ME;"
- Data "BT 5,XB,YA,XB XA-,YB YA-,6ME;"
- Data "BT 6,32,YB 16+,SX64-,24,8ME;"
- Data "BT 7,XA,YB,XB XA-,YB YA-,7ME;"
- Data "BT 8,XA,YB,XB XA-,YB YA-,9ME;"
- Data "BT 9,XA,YB,XB XA-,YB YA-,10ME;"
- Data "EXit;"
-
- ' Definition of Extension screen
- Data "LA 2;"
- Data "BAse 0,0; SIze SW,SH;"
- Data "BT 1,0,0,48,16,20ME;"
- Data "BI 0,XB,0,SX XB-,16,16ME;"
- Data "RB 0,16,SX,SY,0;"
- Data "CTxt 32,32,SX32-,64,1,17ME;"
- Data "LS 2,XA2-,YB14+,SX30-,SY14-,%11;"
- Data "EXit;"
-
- ' Definition of the pop-up string edition
- Data "LA 3;"
- Data "BAse 16,64; SIze SW32-,72;SA 1;"
- Data "RBox 0,0,SX,SY,0;"
- Data "RBox 8,4,SX8-,20,1;"
- Data "POut 2VA CX,8,2VA,0,3;"
- Data "RBox 13,30,SX 13-,42,1;"
- Data "BJ 1,16,SY 24-,128,16,12ME; KY 27,0;"
- Data "BJ 2,SX144-,SY 24-,128,16,13ME; KY 13,0;"
- Data "EDit 3,16,32,72,72,1VA,0,3;"
- Data "RU 0,3;"
- Data "EXit;"
-
- ' Definition of system files
- Data "LA 4;"
- Data "BAse 0,0; SIze SW,SH;"
- Data "BT 1,0,0,48,16,20ME;"
- Data "BI 0,XB,0,SX XB-,16,21ME;"
- Data "RB 0,16,SX,SY,0;"
- Data "CTxt 32,32,SX32-,64,1,22ME;"
- Data "LS 2,XA2-,YB14+,SX30-,SY14-,%11;"
- Data "EXit;"
-
- ' Definition of system setup, page 1
- Data "LA 5;"
- Data "BAse 0,0; SIze SW,SH;"
- Data "BT 1,0,0,48,16,20ME;"
- Data "BI 0,XB,0,SX XB-,16,27ME;"
- Data "RB 0,16,SX,SY,0;"
- Data "BK 2,16,24,SX32-,14,35ME;"
- Data "BK 3,XA,YB,XBXA-,YBYA-,36ME;"
- Data "BK 4,XA,YB,XBXA-,YBYA-,37ME;"
- Data "BK 5,XA,YB,XBXA-,YBYA-,38ME;"
- Data "BK 6,XA,YB,XBXA-,YBYA-,39ME;"
- Data "BK 7,XA,YB,XBXA-,YBYA-,40ME;"
- Data "BK 8,XA,YB,XBXA-,YBYA-,58ME;"
- Data "BK 9,XA,YB,XBXA-,YBYA-,59ME;"
- Data "BK 10,XA,YB,XBXA-,YBYA-,60ME;"
- Data "BT 13,XA,YB8+,XBXA-,16,62ME;"
- Data "BT 11,XA,YB,XBXA-2/,16,33ME;"
- Data "BT 12,XB,YA,XBXA-,YBYA-,34ME;"
- Data "EXit;"
-
- ' Definition of system setup, page 2
- Data "LA 6;"
- Data "BAse 0,0; SIze SW,SH;"
- Data "BT 1,0,0,48,16,20ME;"
- Data "BI 0,XB,0,SX XB-,16,27ME;"
- Data "RB 0,16,SX,SY,0;"
- Data "RC 16,24,416,14,1,28ME; NE 16,XB,YA;"
- Data "RC 16,YB,416,YBYA-,1,30ME; NE 20,XB,YA;"
- Data "RC 16,YB,416,YBYA-,1,29ME; NE 24,XB,YA;"
- Data "RC 16,YB,416,YBYA-,1,31ME; NE 28,XB,YA;"
- Data "RC 16,YB,416,YBYA-,1,32ME; NE 32,XB,YA;"
-
- Data "RC 16,YB8+,416,14,1,41ME;"
- Data "RB XB,YA,SX16-,YB,0; EDit 2,XA16+,YA3+,20,20,2VA,0,3;"
- Data "RC 16,YB2+,416,14,1,42ME;"
- Data "RB XB,YA,SX16-,YB,0; EDit 3,XA16+,YA3+,20,20,3VA,0,3;"
-
- Data "PO 74MECX,YB24+,74ME,0,3;"
- Data "RC 16,YB4+,416,14,1,83ME;"
- Data "RB XB,YA,SX16-,YB,0; EDit 4,XA16+,YA3+,20,20,4VA,0,3;"
- Data "BM 5,16,YB3+,76,14,75ME;"
- Data "BM 6,XB,YA,XBXA-,14,76ME;"
- Data "BM 7,XB,YA,XBXA-,14,77ME;"
- Data "BM 8,XB,YA,XBXA-,14,78ME;"
- Data "BM 9,XB,YA,XBXA-,14,79ME;"
- Data "BM 10,XB,YA,XBXA-,14,80ME;"
- Data "BM 11,XB,YA,XBXA-,14,81ME;"
- Data "BM 12,XB,YA,XBXA-,14,82ME;"
-
- Data "EXit;"
-
- ' Definition of screen setup
- Data "LA 7;"
- Data "BAse 0,0; SIze SW,14;"
- Data "BT 1,0,0,48,14,20ME;"
- Data "BI 0,XB,0,208,14,0VA;"
- Data "BT 2,XB,0,48,14,45ME;"
- Data "BT 3,XB,0,48,14,46ME;"
- Data "IF 16VA0\;[RC XB,0,96,14,1,47ME; NE 16,XB,YA;]"
- Data "IF 16VA0=;[BI 0,XB,0,SWXB-,14,0VA;]"
- Data "EXit;"
-
- ' Default screen setup
- Data "LA 8;"
- Data "BAse 0,0; SIze SW,SH;"
- Data "BT 1,0,0,48,16,20ME;"
- Data "BI 0,XB,0,SX XB-,16,67ME;"
- Data "RB 0,16,SX,SY,0;"
- Data "RC 16,24,416,14,1,68ME; NE 16,XB,YA;"
- Data "BK 3,16,YB4+,SX32-,14,69ME;"
- Data "BK 4,XA,YB4+,XBXA-,YBYA-,70ME;"
- Data "BT 5,16,YB8+,SX32-,16,71ME;"
- Data "PO 72MECX,YB16+,72ME,0,3;"
- Data "PP 6,16,YB4+,624,YB16+,63ME,8;"
- Data "PP 7,XA,YB4+,XB,YB16+,64ME,16;"
- Data "PP 8,XA,YB,XB,YB YBYA-+,65ME,16;"
- Data "PP 9,XA,YB,XB,YB YBYA-+,66ME,16;"
- Data "BT 10,XA,YB,SX32-,12,73ME;"
- Data "EXit;"
-
- Data "UI PP,7;["
- Data "RC P2,P3,P4P2-,P5P3-,0,P6;"
- Data "SV P1,P2; SV 4P1+,P3;"
- Data "HS P1,P2 96+,P3 3+,P4P2-104-,P5P3-6-,0,1,P7,1;[SW 1; IN 6,6,6; PR ZNVA 72+,ZN4+VA 2+,ZP#' '!,3;]"
- Data "XY P2,P3,P4,P5;]"
-
- Data "UI QQ,7; ["
- Data "SZone P6;"
- Data "BU P1,P2,P3,P4,P5,P7,0,1;"
- Data " [RB 0,0,SX,SY,BP;"
- Data " SW 0; PR ZV CX BP+,SY TH- 2/ BP+,ZV,3;]"
- Data " [BC ZN,0;]"
- Data "]"
-
-
-
-
- '----------------------------------------
- ' Text in a RBox, on the left
- ' RC x,y,sx,sy,act,txt
- Data "UI RC,6;["
- Data "RB P1,P2,P1P3+,P2P4+,P5;"
- Data "PR 6P1+,P4TH-2/ P2+,P6,3;"
- Data "XY P1,P2,P1P3+,P2P4+;"
- Data "]"
- '----------------------------------------
- ' One button, with text, ON/OFF <<< variable
- ' BK zone,x,y,sx,sy,text1
- Data "UI BK,6; ["
- Data "RC P2,P3,P464-,P5,1,P6;"
- Data "BU P1,P2P4+64-,P3,64,P5,P1VA,0,1;"
- Data " [RB 0,0,SX,SY,0;"
- Data " PR 25BP+ME CX,SY TH- 2/,25BP+ME,3;]"
- Data " [SVar ZN,ZPos;]"
- Data "XY P2,P3,P2P4+,P3P5+;"
- Data "]"
- '----------------------------------------
- ' One button, with text, On/OFF
- ' BT zone,x,y,sx,sy,text
- Data "UI BM,6; ["
- Data "SZone P6;"
- Data "BU P1,P2,P3,P4,P5,P1VA,0,1;"
- Data " [RB 0,0,SX,SY,BP;"
- Data " PR ZV CX BP+,SY TH- 2/ BP+,ZV,3;]"
- Data " []"
- Data "]"
- ' --------------------------------
- ' Number Edit: - / + / Slider / Digit
- ' NE zone,x,y Uses 4 variables from ZONE
- Data "UI NE,3; ["
- Data "SZone P1;"
- Data "RBox P2,P3,128P2+,14P3+,0;"
- Data "HSlide P1,XA4+,YA3+,119,8,P1VA 1P1+VA -,1,2P1+VA 1P1+VA -,3P1+VA;"
- Data " [SVar ZN,ZPos 1ZN+VA +;JS 100;]"
- Data "SVar 2P1+,128P2+; SVar 3P1+,P3; JSub 100;"
- Data "XY P2,P3,XB,YB;"
- Data " ]"
- Data "LA100; RB 2ZV+VA,3ZV+VA,2ZV+VA64+,3ZV+VA14+,0;"
- Data "PRint 2ZV+VA6+,3ZV+VA3+,ZVVA #,3;"
- Data "XY 2ZV+VA,3ZV+VA,2ZV+VA64+,3ZV+VA14+; RTs;"
- ' --------------------------------
- ' List Slider: draw a list + a slider, linked together
- ' LS zone,x,y,x,y,flags
- Data "UI LS,6; ["
- Data "RB P2,P3,P2 16+,P5,1;"
- Data "RB XB,YA,P4,P5,1;"
- Data "SZone P1;"
- Data "VSlide P1,P2 3+,P3 2+,9,P5 P3- 4-,P1VA,7,1P1+VA AS,1;[ZChange ZNum 1+,ZPos;]"
- Data "AList P1 1+,P2 18+,P3 2+,P4 P2- 18- 8/,P5 P3- 8/,1P1+VA,P1VA,P6,0,3;[]"
- Data "XY P2,P3,P4,P5;]"
- '----------------------------------------
- ' One button, with vertical text, click only
- ' BV zone,x,y,sx,sy,text
- Data "UI BV,6; ["
- Data "SZone P6;"
- Data "BU P1,P2,P3,P4,P5,0,0,1;"
- Data " [RB 0,0,SX,SY,BP;"
- Data " VTxt SX 2/ 4- BP+,SY ZVarTLen TH* - 2/ BP+,ZV,1;]"
- Data " [BR 0;]"
- Data "]"
- '----------------------------------------
- ' One button, with text, click only
- ' BT zone,x,y,sx,sy,text
- Data "UI BT,6; ["
- Data "SZone P6;"
- Data "BU P1,P2,P3,P4,P5,0,0,1;"
- Data " [RB 0,0,SX,SY,BP;"
- Data " PR ZV CX BP+,SY TH- 2/ BP+,ZV,3;]"
- Data " [BR 0;]"
- Data "]"
- '---------------------------------------- '
- ' One button, with text to move the screen
- ' BT zone,x,y,sx,sy,text
- Data "UI BI,6; ["
- Data "SZone P6;"
- Data "BU P1,P2,P3,P4,P5,0,0,1;"
- Data " [RB 0,0,SX,SY,BP;"
- Data " PR ZV CX BP+,SY TH- 2/ BP+,ZV,3;]"
- Data " [SMove;BR 0;]"
- Data "]"
- '----------------------------------------
- ' One button, with text, click only, QUIT!
- ' BJ zone,x,y,sx,sy,text
- Data "UI BJ,6; ["
- Data "SZone P6;"
- Data "BU P1,P2,P3,P4,P5,0,0,1;"
- Data " [RB 0,0,SX,SY,BP;"
- Data " PO ZV CX BP+,SY TH- 2/ BP+,ZV,0,3;]"
- Data " [BR 0;BQuit;]"
- Data "]"
- '----------------------------------------
- ' Text centered in one RB
- ' CT x1,y1,x2,y2,act,text
- Data "UI CT,6; ["
- Data "RB P1,P2,P3,P4,P5;"
- Data "PRint P3 P1- P6TW- 2/ P1+,P4 P2- TH- 2/ P2+,P6,3;"
- Data "XY P1,P2,P3,P4;]"
- '----------------------------------------
- ' Ronnies Simpson graphic box definition
- ' RB x1,y1,x2,y2,activated
- Data "UI RB,5; [SWrite 1; SPattern 0,0;"
- Data "IF P5 0=;["
- Data "INk 0,0,0; GSquare P1,P2,P3 1-,P4 1-;"
- Data "INk 6,6,6; GBox P1 1+,P2 1+,P3 2-,P4 2-; "
- Data "INk 5,5,5; GLine P1 2+,P4 2-,P1 2+,P2 1+;"
- Data " GLine P1 1+,P4 2-,P1 1+,P2 1+;"
- Data " GLine P1 1+,P2 1+,P3 2-,P2 1+;"
- Data "INk 2,2,2; GLine P1 2+,P4 2-,P3 2-,P4 2-;"
- Data " GLine P3 3-,P2 2+,P3 3-,P4 2-;"
- Data " GLine P3 2-,P2 1+,P3 2-,P4 2-;"
- Data "INk 3,3,3; GLine P1 3+,P2 2+,P1 4+,P2 2+;]"
- Data "IF P5 0\;["
- Data "INk 0,0,0; GSquare P1,P2,P3 1-,P4 1-;"
- Data "INk 2,2,2; GBox P1 1+,P2 1+,P3 2-,P4 2-; "
- Data "INk 1,1,1; GLine P1 2+,P4 2-,P1 2+,P2 1+;"
- Data " GLine P1 1+,P4 2-,P1 1+,P2 1+;"
- Data " GLine P1 1+,P2 1+,P3 2-,P2 1+;"
- Data "INk 5,5,5; GLine P1 2+,P4 2-,P3 2-,P4 2-;"
- Data " GLine P3 3-,P2 2+,P3 3-,P4 2-;"
- Data " GLine P3 2-,P2 1+,P3 2-,P4 2-;]"
- Data "SWrite 0; XY P1,P2,P3,P4;]"
- Data ""
- End Proc
- Procedure GRB_EDITOR_PALETTE
- ADAT=Leek(Dreg(3))
- If ADAT=0
- Palette 0,$6F,$77,$EEE,$F00,$DD,$AA,$FF3
- Else
- For C=0 To 7
- Colour C,Deek(ADAT+28+C*2)
- Next
- Colour 1,(Colour(2) and $EEE)/2
- End If
- End Proc
- Procedure OOMEM
- Trap Dialog Clr 1
- Trap Dialog Close
- Trap D=Dialog Box(DB$,2,Resource$(61))
- MN_QUIT
- End Proc
- Procedure MN_QUIT
- Dialog Close
- Trap Screen Close 0
- Trap Screen Close 1
- Edit
- End Proc